var isValidForm=null;

    var letras=new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ');

    var numbers=new Array("1","2","3","4","5","6","7","8","9","0");

    var simbols=new Array("*","/","?","�","'","�","!","+","-","{","}","[","]","�","<",">");

function replaceAll( text, busca, reemplaza ){
	  while (text.toString().indexOf(busca) != -1)
	      text = text.toString().replace(busca,reemplaza);	  return text;
	}

$('.clsFec').live('focusout',function(){
    var obj=$(this);
    NoMsg();
    obj.removeClass('clsBorErr');
    
    this.value = replaceAll(this.value,"/","-");
        this.maxLength = 10;
        var ret = esFechaValida(this);
        if (! ret){
          //  ret = "error";
            //obj.addClass('clsBorErr');
            ShowWarning('Formato de Fecha debe ser "__-__-____" .');
            this.focus();            
        }
        //ShowInfo('Out : '+this.id + " : "+ret);
    }
);

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function isNull(al){
    if (al== null || trim(al)=="" || trim(al)=="null" || al == undefined || al=="NaN")
        return true;
    else
        return false;
}

//function isComplete(array,arrayNames){
//    var isNames = (!arrayNames==null);
//    var msg="";
//    for(var x in array){
//        var elem = GEBI(array[x]);
//        if (elem!=null){
//            var al=null;
//            if (elem.nodeName=="SPAN"){
//                al=elem.innerHTML;
//            }
//            else{
//                al = elem.value;
//            }
//
//            if (isNull(al)){
//                if (isNames){
//                    msg = arrayNames[x];
//                }
//                else {
//                    if (isNull(elem.title))
//                    msg = array[x];
//                    else
//                    msg = elem.title;
//                }
//                ShowWarning('Datos incompletos.  <span class="TxtError">El Par&aacute;metro ['+msg+'] no ha sido completado de forma correcta');
//                try {
//                    elem.focus();
//                    $(elem).alerta('Completar.');
//                    
//                } catch (exception) {
//
//                }
//
//                return false;
//            }
//        }
//        else {
//
//        }
//    }
//    return true;
//}

//function noGlobal(){
//	$("#lo_d_globo").xhide();//.css({visibility : 'hidden'});
//	}

//$('input[type|=text]').live('keypress',function(e){
//    if ($(this).next('.clsDate').length>0){
//    
//    var chr = e.which;
//   // alert(chr);
//    if (!(chr==45 || chr==47 || chr==13 || chr==0 || (chr>=48 && chr<=57) || chr==8)){
//        e.preventDefault();
//        $(this).alerta('Formato Fecha');
//    }    
//    }
//});

$(".lo_Nums").live('keypress',function(e){
    var chr=e.which;
    //ShowOk(chr);
    var mx=parseInt($(this).attr('maxlenght'));
    if(mx!= NaN && mx!="" && mx!= null){
    if (!xSoloNumeros(chr,this,mx)) e.preventDefault();
    }
    else{
    if (!xSoloNumeros(chr,this,mx)) e.preventDefault();
    }
});

//$('input').live('focus',function(){
//  noGlobal();
//});

$('.lo_Decs').live('keypress',function(e){
    var chr=e.which;
    var mx=parseInt($(this).attr('maxlenght'));
    if(mx!= NaN && mx!="" && mx!= null){
    if(!xSoloNumerosDec(chr,this)) e.preventDefault();
    }
    else{
    if(!xSoloNumerosDec(chr,this)) e.prevendDefault();
    }
}).live('focusout',function(e){
  //  alert('');
   this.value = toDec2Digits(this.value);
});



$(".lo_Letras").live('keypress',function(e){
    var chr=e.which;
  if(!xSoloLetras(chr,this)) e.preventDefault();
});

function ValidaData(form){
	isValidForm=true;	
	$(form).find("input").each(function(){
										
										if(!tipo=="button" || $(this).attr('class').lastIndexOf('lo_none')>0){
										GoodItem(this);
										}
										var tipo=$(this).attr("type");
										var valor=$(this).val();
										$(this).removeClass('lo_GoodItem');
										$(this).removeClass('lo_BadItem');
										if(tipo=="text"){
											if(valor=="" || valor==null){
												//BadItem(this);
												//isValidForm=false;
												//return ;
											}
										}
										else if(tipo=="radio"){
										}
										else if(tipo=="checkbox"){
										}
										else if(tipo=="password"){
											if(valor=="" || valor==null){
												BadItem(this);											
												isValidForm=false;
													return ;
											}
										}
										
									});
	
	
	if(!isValidForm){
		return ;
		}
	
	$(form).find("select").each(function(){
										 GoodItem(this);
										 var valor=$(this).val();
										 var text=$.trim($(this).find("option:selected").text());
										 var index=this.selectedIndex;
										 var opts = this.options.length;
										 		
											 if(opts<=0 ||  index==-1 || valor=="" || valor==null || text=="Seleccione..."){
												 BadItem(this);
												 isValidForm=false;
												 return ;
											 }
										 });
}

function BadItem(obj){
//	$(obj).each(function(){
//	            //  alert($(obj).attr('id'));
//						 $(this).removeClass('lo_GoodItem');
//						 $(this).addClass('lo_BadItem');
//						 ShowMessage("Valor inv&aacute;lida para el Campo");
//							$(this).alerta('Valor no v&aacute;lido');
//                            ctrlVal = this;
//						 });
}

function GoodItem(obj){
//	$(obj).each(function(){
//						 $(this).removeClass('lo_BadItem');
//						 $(this).addClass('lo_GoodItem');
//						 noGlobal();
//						 });
}

function EnableItems(obj,valor){
	if (valor==false){
		$(obj).find("input,textarea,select").attr('disabled','disabled');
	}
	else{
		$(obj).find("input,textarea,select").removeAttr('disabled');
	}
}

function xSoloLetras(chr,obj){
    var cad=obj.value;
    //alert(cad.length);
    if(cad==''){
		if($(obj).hasClass('lo_none')){
        BadItem(obj);
		 return false;
		}
		else 
		{
		return true;
		}
    }
    var cs=0;

        if (!((chr>=65 && chr<=126) || chr==8 || chr==32 || chr==0 || chr==40 || chr==41 || chr==13)){
			ShowWarning('Solo Letras');
            return false;
        }
   
    GoodItem(obj);
    //obj.title="Listo";
    return true;
}

function isSimbol(caracter){
    for(var x=0;x<simbols.length;x++){
        if(simbols[x]==caracter){
            return true;
        }
    }
    return false;
}

function isNumber(caracter){
    for(var x=0;x<numbers.length;x++){
        if(numbers[x]==caracter){
            return true;
        }
    }
    return false;
}

function isLetter(caracter){
    for(var x=0;x<letras.length;x++){
        if(letras[x]==caracter){
            return true
        }
    }
    return false;
}



function xSoloNumerosDec(chr,ctrl){
var obj=$(ctrl).val();
var c="";
var asc=0;
var pnt=0;
if ($.trim(obj)==''){
//BadItem(ctrl);
//return false;
}
    var x=ctrl.value.indexOf('.');
	if (!(chr>=48 && chr<=57) && !(chr==46) && !(chr==8) && !(chr==13 || chr==0)){
	BadItem(ctrl);
        ShowWarning('Solo Numeros');
		return false;		
	}
    if (chr==46 && x>=0){
        ShowError('Decimal Invalido');
        BadItem(ctrl);
        return false;
    }
    GoodItem(ctrl);
    return true;
}
//alert("Puntos : "+pnt);




function xSoloNumeros(chr,obj,verLong){
    var cad=obj.value;
    //alert(cad.length);
    if(cad==''){
  //     BadItem(obj);
    //   return false;
    }
    var cs=0;
    if (!((chr>=48 && chr<=57) || chr==8 || chr==13 || chr==0)){
            BadItem(obj);
            ShowWarning('Solo N&uacute;meros');
            return false;
    }

    if(verLong>0){
        if(cad.length<verLong){
        //Complete
            BadItem(obj);
            return false;
        }
    }
    GoodItem(obj);
    return true;
    //alert("no hay letras");    
}


function ifNull(obj,reemplazo){
    if ($.trim(obj)=="" || obj == "undefined" || obj == null){
        return reemplazo;
    }
    else {
        return obj;
    }
}

    function esFechaValida(fecha){
        if (fecha != undefined && fecha.value != "" ){
            var t1=(/^\d{1}\-\d{2}\-\d{4}$/.test(fecha.value));
            var t2=(/^\d{2}\-\d{2}\-\d{4}$/.test(fecha.value));
            if (!(t1 || t2)){
                //alert("formato de fecha no válido (dd/mm/aaaa)");
                return false;
            }
            var dia  =  parseInt(fecha.value.substring(0,(t1?1:2)),10);
            var mes  =  parseInt(fecha.value.substring(3,5),10);
            var anio =  parseInt(fecha.value.substring(6),10);

        switch(mes){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDias=31;
                break;
            case 4: case 6: case 9: case 11:
                numDias=30;
                break;
            case 2:
                if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
                break;
            default:
                //alert("Fecha introducida errónea");
                return false;
        }

            if (dia>numDias || dia==0){
               // alert("Fecha introducida errónea");
                return false;
            }
            return true;
        }
        return true;
    }



function Redondeo(number,digitos){
    var cifras =parseInt(Math.pow(10,digitos));
}

//function GEBI(obj){
 //   return document.getElementByid(obj);
//}

function toDec2Digits(num){
    var cnum = "";
   try {
     cnum = num + "";
    var posp = cnum.lastIndexOf('.'); // encontrar el punto decimal.
    var len = cnum.length;
    if (posp>=0 && len - posp>3 ){
        cnum = cnum.substring(0,posp+1)+cnum.substring(posp+1,posp+3);
    }
    } catch (exception) {
        ShowError(exception);
    cnum = num;
    }
        return cnum;

}

